using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.Design;
using Microsoft.VisualStudio.Shell.Interop;

namespace VSSDKAssist.Enums
{
	/// <summary>
	/// Visual Studio window guids enum
	/// </summary>
	public static class WindowGuid
	{
		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline")]
		static WindowGuid()
		{
			values = new SortedDictionary<string, Guid>();
			values.Add("Browser document", new Guid(ToolWindowGuids.BrowserDoc));
			values.Add("Class view", new Guid(ToolWindowGuids.ClassView));
			values.Add("Command window", new Guid(ToolWindowGuids.CommandWindow));
			values.Add("Context window", new Guid(ToolWindowGuids.ContextWindow));
			values.Add("Document outline", new Guid(ToolWindowGuids.DocOutline));
			values.Add("Find advanced", new Guid(ToolWindowGuids.FindAdvanced));
			values.Add("Find replace", new Guid(ToolWindowGuids.FindReplace));
			values.Add("Find results 1", new Guid(ToolWindowGuids.FindResults1));
			values.Add("Find results 2", new Guid(ToolWindowGuids.FindResults2));
			values.Add("Macro explorer", new Guid(ToolWindowGuids.MacroExplorer));
			values.Add("Object browser", new Guid(ToolWindowGuids.ObjectBrowser));
			values.Add("Object search results window", new Guid(ToolWindowGuids.ObjectSearchResultsWindow));
			values.Add("Object search window", new Guid(ToolWindowGuids.ObjectSearchWindow));
			values.Add("Output window", new Guid(ToolWindowGuids.Outputwindow));
			values.Add("Property window", new Guid(ToolWindowGuids.PropertyBrowser));
			values.Add("Resource view", new Guid(ToolWindowGuids.ResourceView));
			values.Add("Server explorer", new Guid(ToolWindowGuids.ServerExplorer));
			values.Add("Solution explorer", new Guid(ToolWindowGuids.SolutionExplorer));
			values.Add("TaskList", new Guid(ToolWindowGuids.TaskList));
			values.Add("Toolbox", new Guid(ToolWindowGuids.Toolbox));

			values.Add("Autos", new Guid(ToolWindowGuids80.Autos));
			values.Add("Bookmark window", new Guid(ToolWindowGuids80.BookmarkWindow));
			values.Add("Breakpoints", new Guid(ToolWindowGuids80.Breakpoints));
			values.Add("Call browser secondary window", new Guid(ToolWindowGuids80.CallBrowserSecondaryWindow));
			values.Add("Call browser window", new Guid(ToolWindowGuids80.CallBrowserWindow));
			values.Add("CallStack", new Guid(ToolWindowGuids80.CallStack));
			values.Add("Class details", new Guid(ToolWindowGuids80.ClassDetails));
			values.Add("Data source window", new Guid(ToolWindowGuids80.DataSourceWindow));
			values.Add("Definition window", new Guid(ToolWindowGuids80.DefinitionWindow));
			values.Add("Disassembly", new Guid(ToolWindowGuids80.Disassembly));
			values.Add("ErrorList", new Guid(ToolWindowGuids80.ErrorList));
			values.Add("Find1", new Guid(ToolWindowGuids80.Find1));
			values.Add("Find2", new Guid(ToolWindowGuids80.Find2));
			values.Add("Immediate window", new Guid(ToolWindowGuids80.ImmediateWindow));
			values.Add("Locals", new Guid(ToolWindowGuids80.Locals));
			values.Add("Memory", new Guid(ToolWindowGuids80.Memory));
			values.Add("Modules", new Guid(ToolWindowGuids80.Modules));
			values.Add("Processes", new Guid(ToolWindowGuids80.Processes));
			values.Add("Running documents", new Guid(ToolWindowGuids80.RunningDocuments));
			values.Add("Watch", new Guid(ToolWindowGuids80.Watch));
		}

		#region Properties
		private static SortedDictionary<string, Guid> values;

		/// <summary>
		/// Gets the values.
		/// </summary>
		/// <value>The values.</value>
		public static SortedDictionary<string, Guid> Values
		{
			get { return values; }
		}
		#endregion
	}
}